﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"1fc70064-ac25-43fe-baa3-93a9925b7b11\", \"Представление\":\"НеПрименяется\"}")]
		НеПрименяется = 0,//Не применяется
		[EnumMember(Value = "{\"Ссылка\":\"7d091ea6-fc62-40b4-9e43-5669919f3aef\", \"Представление\":\"ОсвобождениеОтНалогообложенияМестное\"}")]
		ОсвобождениеОтНалогообложенияМестное = 1,//Освобождение от налогообложения, установленное местным нормативным актом
		[EnumMember(Value = "{\"Ссылка\":\"6865fa14-5404-48fe-a65e-6c431dc93a1d\", \"Представление\":\"ОсвобождениеОтНалогообложенияПоСтатье395\"}")]
		ОсвобождениеОтНалогообложенияПоСтатье395 = 2,//Освобождение от налогообложения по ст. 395 НК РФ
		[EnumMember(Value = "{\"Ссылка\":\"01e1fb2b-38b1-4c19-8592-ef3454bebd1f\", \"Представление\":\"НеОблагаемаяНалогомПлощадь\"}")]
		НеОблагаемаяНалогомПлощадь = 3,//Не облагаемая налогом площадь
		[EnumMember(Value = "{\"Ссылка\":\"f9f82e5d-8dc4-4166-bf00-694a9754b30d\", \"Представление\":\"УменьшениеНалоговойБазы\"}")]
		УменьшениеНалоговойБазы = 4,//Уменьшение налоговой базы
	}
	public static partial class ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid НеПрименяется = new Guid("a993a3ba-5b92-117b-43fe-ac251fc70064");//Не применяется
		public static readonly Guid ОсвобождениеОтНалогообложенияМестное = new Guid("6956439e-9f91-ef3a-40b4-fc627d091ea6");//Освобождение от налогообложения, установленное местным нормативным актом
		public static readonly Guid ОсвобождениеОтНалогообложенияПоСтатье395 = new Guid("436c5ea6-c91d-1d3a-48fe-54046865fa14");//Освобождение от налогообложения по ст. 395 НК РФ
		public static readonly Guid НеОблагаемаяНалогомПлощадь = new Guid("34ef9285-be54-1fbd-4c19-38b101e1fb2b");//Не облагаемая налогом площадь
		public static readonly Guid УменьшениеНалоговойБазы = new Guid("4a6900bf-5497-0db3-4166-8dc4f9f82e5d");//Уменьшение налоговой базы
		public static ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу Получить(this ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу Получить(this ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу Значение, Guid Ссылка)
		{
			if(Ссылка == НеПрименяется)
			{
				return ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.НеПрименяется;
			}
			else if(Ссылка == ОсвобождениеОтНалогообложенияМестное)
			{
				return ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.ОсвобождениеОтНалогообложенияМестное;
			}
			else if(Ссылка == ОсвобождениеОтНалогообложенияПоСтатье395)
			{
				return ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.ОсвобождениеОтНалогообложенияПоСтатье395;
			}
			else if(Ссылка == НеОблагаемаяНалогомПлощадь)
			{
				return ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.НеОблагаемаяНалогомПлощадь;
			}
			else if(Ссылка == УменьшениеНалоговойБазы)
			{
				return ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.УменьшениеНалоговойБазы;
			}
			return ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу Значение)
		{
			switch (Значение)
			{
				case ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.НеПрименяется: return НеПрименяется;
				case ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.ОсвобождениеОтНалогообложенияМестное: return ОсвобождениеОтНалогообложенияМестное;
				case ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.ОсвобождениеОтНалогообложенияПоСтатье395: return ОсвобождениеОтНалогообложенияПоСтатье395;
				case ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.НеОблагаемаяНалогомПлощадь: return НеОблагаемаяНалогомПлощадь;
				case ВидНалоговойЛьготыПоНалоговойБазеПоЗемельномуНалогу.УменьшениеНалоговойБазы: return УменьшениеНалоговойБазы;
			}
			return Guid.Empty;
		}
	}
}